/**
 * Questa classe ha la reponsabilità di gestire il menu dell'applicazione {@link CruciverbaGuiMain}
 * @author Giacomo
 */
package cruciverbaGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

import cruciverbaFiltro.ContaCaratteriInComune;
import cruciverbaFiltro.Filtro;
import cruciverbaFiltro.ParolaInglese;
import cruciverbaFiltro.ParolaPalindroma;
import cruciverbaFiltro.ProxyFiltro;
import cruciverbaFiltro.PuntiDiIntersezione;

public class CruciverbaMenu extends JMenuBar {
	
	private ProxyFiltro proxyFiltro;
	
	public CruciverbaMenu(ProxyFiltro proxyFiltro) {
		this.proxyFiltro = proxyFiltro;
		JMenu menuFiltro = new JMenu("Filtro");
		JMenuItem parolaInglese = new JMenuItem("Parola Inglese");
		JMenuItem parolaPalindroma = new JMenuItem("Parola palindroma");
		JMenuItem contaCarattereInComune = new JMenuItem("Conta carrateri");
		JMenuItem puntiDiIntersezione = new JMenuItem("Punti di intersezione");
		menuFiltro.add(parolaInglese);
		menuFiltro.add(parolaPalindroma);
		menuFiltro.add(contaCarattereInComune);
		menuFiltro.add(puntiDiIntersezione);
		impostaFiltro(parolaInglese, new ParolaInglese());
		impostaFiltro(parolaPalindroma, new ParolaPalindroma());
		impostaFiltro(contaCarattereInComune, new ContaCaratteriInComune());
		impostaFiltro(puntiDiIntersezione, new PuntiDiIntersezione());
		add(menuFiltro);
	}

	private void impostaFiltro(JMenuItem parolaInglese, final Filtro filtro) {
		parolaInglese.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				proxyFiltro.setFiltro(filtro);
			}
		});
	}

}
